/**
 * 函数的参数
 */
function play(num1:number,num2:number){
    let sum:number = num1 + num2
}
function play2(stu:{id:number,name:string}){

}
play2({id:1,name:"xiao"})

function play3(array:number[]){
    array.sort()
}

//定义一种数据格式
type stu = {
    id:number,
    name:string
}
function play5(student:stu){

}
play5({id:1,name:""})

function play6(...args:number[]){
    console.log(args);  //==>[1,2,3,4]
    
}
play6(1,2,3,4,5)
play6(1,2,3)


/**
 * 函数返回值
 * void也是一种数据类型,代表无返回
 * num1:传递距离
 * num2:传递序号
 */
// function show(num1:number):number{
//     let sum = num1 * 3
//     return sum
// }
// show(1)

type myuser2 = {
    id:number
}
function show2(user:myuser2):myuser2{
    return user
}
const res2 = show2({id:1})

/**
 * 函数的重载:一个函数会出现很多次.重复定义.根据参数的不同,调用不同函数
 * 函数的重写:必须发生继承里面,子类重写父类的方法,优先调用子类
 */
// function getInfo(msg:number):number{
//     return msg;
// }
// function getInfo(msg:string):string{
//     return msg;
// }
// getInfo("xiaowang")

/**
 * 练习: 定义一个函数,接受一个参数,将对应数据取出来返回
 * http://127.0.0.1:3000?id=1&name=xiaowang
 * {id:1,name:"xiaowang"}
 * 
 * 练习2: 定义一个函数,接受两个参数 format(format,value){}
 * 第一个参数日期格式,第二个参数是日期的值
 * 比如:format("yyyy-MM-dd",new Date())   返回结果为: 2023-07-24
 */







// play(1,"xiaowang")
// play()
